An increasing number and variety of devices engage in communications via networks such as the internet. In addition to traditional computing devices such as computers, smart phones, and tablets, an increasing number of other machines and equipment are being deployed as connected devices. Wearables, the Internet of Things, the smart home, and myriad other devices utilize remote resources such as servers executing programs and cloud storage in order to provide additional functionality. As a result, a large volume of data such as user data and machine data is created and exchanged by connected devices and the equipment (e.g., servers and cloud storage) that serves those devices.
It is useful to store much of this large volume of data. Information such as user behaviors, program errors, and usage patterns may be analyzed to improve the functionality of a program or device. Information about the operation of hardware and software systems such as servers such as logs and statistics may be analyzed for numerous reasons, such as to identify usage patterns, update programs and equipment, troubleshoot failures, and improve system operations. A data intake and query system may provide a mechanism for large volumes of data to be stored for later searching and analysis. In order to manage and handle a large volume of data from a variety of sources, the system may employ a number of servers that perform different roles in the process of ingesting data, storing data, and performing searching and analysis of data.
The storage of large volumes of data within a data intake and query system and the ability to search such a system results in a rich source of information that can be used for a range of purposes. Developers may write software applications that run within the data intake and query system. However, data intake and query systems often have unique and complex implementations, such that it may be difficult to create applications that run on different systems, or that efficiently utilize the functionality of those systems. Administrators operating the data intake and query system may be forced to engage in painstaking configuration and installations in order to install and operate an application on the system. The difficulty of creating, deploying and configuring applications for a data intake and query system limits the availability of applications that may provide useful functionality for the data intake and query system.